package com.crm.service.customerManager;

import com.crm.model.entity.customerManager.SingleProductCustomer;
import com.crm.model.qo.customerManager.SingleProductCustomerQO;
import com.crm.model.vo.customerManager.SingleProductCustomerVO;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/4/29 15:29
 */
public interface SingleProductCustomerDbService {
    /**
     * 客户管理-单品客户-超级管理员
     * @Author pym
     * @Date  2021/4/29 15:30
     * @param singleProductCustomerQO -查询条件
     * @param dateUnit -日期类型(全部/本周/本月/本年度)
     * @param sortOrder -排序列
     * @return {@link {java.util.List<com.crm.model.vo.customerManager.SingleProductCustomerVO>}}
     */
    List<SingleProductCustomerVO> selectAllSingleProductCustomerList(SingleProductCustomerQO singleProductCustomerQO, Integer dateUnit, String sortOrder);

    /**
     * 客户管理-单品客户
     * @Author pym
     * @Date  2021/4/29 15:41
     * @param singleProductCustomerQO -查询条件
     * @param dateUnit -日期类型(全部/本周/本月/本年度)
     * @param sortOrder -排序列
     * @param accountId -账号ID
     * @return {@link {java.util.List<com.crm.model.vo.customerManager.SingleProductCustomerVO>}}
     */
    List<SingleProductCustomerVO> selectNormalSingleProductCustomerList(SingleProductCustomerQO singleProductCustomerQO, Integer dateUnit, String sortOrder, String accountId);

    /**
     * 判断单品客户是否重复
     * @Author pym
     * @Date  2021/4/30 11:37
     * @param customerId 客户ID
     * @return {@link {java.lang.Boolean}}
     */
    Boolean isSingleProductCustomerRepeat(String customerId, String accountId);


    /**
     * 新增单品客户
     * @Author pym
     * @Date  2021/4/30 11:50
     * @param singleProductCustomer 单品客户
     * @return {@link {java.lang.Boolean}}
     */
    Boolean insertSingleProductCustomer(SingleProductCustomer singleProductCustomer);

    /**
     * 根据主键修改单品客户
     * @Author pym
     * @Date  2021/7/15 10:07
     * @param singleProductCustomer 单品客户
     * @return {@link {java.lang.Boolean}}
     */
    Boolean updateSingleProductCustomerById(SingleProductCustomer singleProductCustomer);

}
